package com.sali.commons.exception;



import com.sali.utils.result.IResultCode;
import lombok.Data;

@Data
public class ErrorHandlerResult {
    // ErrorHandler === R 答案：不想破坏R类。
    // 异常的状态码，从枚举中获得
    private Integer code;
    // 异常的消息，写用户看得懂的异常，从枚举中得到
    private Object msg;
    // 异常的名字
    private String exception;


    public static ErrorHandlerResult fail(Integer code, Object msg, Throwable throwable) {
        ErrorHandlerResult errorHandlerResult = new ErrorHandlerResult();
        errorHandlerResult.setMsg(msg);
        errorHandlerResult.setCode(code);
        errorHandlerResult.setException(throwable.getMessage());
        return errorHandlerResult;
    }

    public static ErrorHandlerResult fail(IResultCode resultCode, Throwable throwable) {
        ErrorHandlerResult errorHandlerResult = new ErrorHandlerResult();
        errorHandlerResult.setMsg(resultCode.getMsg());
        errorHandlerResult.setCode(resultCode.getCode());
        errorHandlerResult.setException(throwable.getMessage());
        return errorHandlerResult;
    }

}